from django.shortcuts import render_to_response
from django.db.models import Q
from django.core.context_processors import csrf
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from usuarios.models import *
from gestion_cuestionarios.forms import *
from django.template import RequestContext


from cuestionarios.models import Cuestionario



def view_lista_cuestionarios(request):
    permisos={}
    if "user" in request.COOKIES:
        id=int(request.COOKIES.get("user", ''))
        usuario=User.objects.get(id=id)
        userpermisos=UserPermisos.objects.get(user=usuario.id)
        permisos['issueper']=usuario.is_superuser
        permisos['isadmin']=userpermisos.admin
        permisos['issup']=userpermisos.supervisor
        permisos['isexp']=userpermisos.experto
        if userpermisos.experto: 
            cuestionarios=Cuestionario.objects.filter(user=id)
            cuestionariosactivos=Cuestionario.objects.filter(~Q(pk__in=cuestionarios)& Q(activo=True))
            contexto = {'cuestionarios': cuestionarios, 'permisos':permisos, 'cuestionarios_activos':cuestionariosactivos, 'user':usuario, 'userid':id}
        elif userpermisos.supervisor:
            cuestionarios=Cuestionario.objects.all()
            contexto = {'cuestionarios': cuestionarios, 'permisos':permisos, 'user':usuario, 'userid':id}
        else:
            cuestionarios=Cuestionario.objects.filter(activo=True)
            contexto = {'cuestionarios_activos': cuestionarios, 'permisos':permisos, 'user':usuario, 'userid':id}
        mensaje=''
        
        if "mensaje" in request.COOKIES:
            mensaje=request.COOKIES.get("mensaje", '')
            contexto['mensaje']=mensaje
        response=render_to_response(r'gestion_cuestionarios/lista_cuestionarios.html',RequestContext(request, contexto))
        response.delete_cookie("mensaje")
        return response
    else:
        return HttpResponseRedirect('/')

def view_nuevo_cuestionario(request):
    if "user" in request.COOKIES:
        userid=int(request.COOKIES.get("user", ''))
        if request.method=="POST":
            form = CuestionarioForm(request.POST)
            if form.is_valid():
                cuestionario=Cuestionario()
                cuestionario.nombre=form.cleaned_data['nombre']
                cuestionario.descripcion=form.cleaned_data['descripcion']
                cuestionario.user_id=userid
                cuestionario.active=False
                cuestionario.save()
                return HttpResponseRedirect(reverse(view_lista_cuestionarios))
        else:
            form = CuestionarioForm()
        contexto={'form':form}
        contexto.update(csrf(request))
        return render_to_response(r'gestion_cuestionarios/nuevo_cuestionario.html',contexto)
    return HttpResponseRedirect('/')
    
def view_eliminar_cuestionario(request):
    if 'idcuestionario' in request.GET:  
        cuest_id = request.GET['idcuestionario']
        cuestionario = Cuestionario.objects.get(pk=cuest_id)
        cuestionario.delete()
    return HttpResponseRedirect(reverse(view_lista_cuestionarios))

def view_activar_desc_cuestionarios(request, id):
    cuestionario=Cuestionario.objects.get(pk=id)
    cuestionario.activo=not cuestionario.activo
    cuestionario.save()
    return HttpResponseRedirect(reverse(view_lista_cuestionarios))
    
